package com.cropdoctor.service;

import com.cropdoctor.common.Result;
import com.cropdoctor.model.constants.PageParams;
import com.cropdoctor.model.constants.PageResult;
import com.cropdoctor.model.dto.AuditHistoryDto;
import com.cropdoctor.model.dto.PrePublishCourseDto;
import com.cropdoctor.model.po.CourseInfoPo;
import com.cropdoctor.model.po.PrePublishCoursePo;
import com.cropdoctor.model.vo.PublishCourseInfoVO;
import com.cropdoctor.model.vo.PublishCourseVO;

import java.time.LocalDate;
import java.util.List;

public interface CourseService {
    Result<String> auditCourse(String status, String auditMind, String id);

    Result<List<PrePublishCoursePo>> getAllPrePublishCourse();


    Result<List<AuditHistoryDto>> getAuditHistory(LocalDate endDate, LocalDate beginDate);

    public Result<List<PublishCourseVO>> getUploadCourse();

    Result<String> submitCourseInfo(CourseInfoPo courseInfoPo);


    Result<String> saveCourseInfo(CourseInfoPo courseInfoPo);

    Result<String> uploadCourse(CourseInfoPo courseInfoPo);

    Result<String> removeCourse(long id);

    Result<PrePublishCourseDto> getPrePublishCourseInfo(Long courseId);

    Result<PageResult<PublishCourseVO>> getCourseList(String mt, String st, String keyword, PageParams pageParams);

    Result<PublishCourseInfoVO> getCourseInfo(long id);


    Result<List<CourseInfoPo>> getMyCourseInfo(String auditStatus);

    Result<String> upCourse(long id);

    Result<String> deleteCourseInfo(long id);

    Result<CourseInfoPo> getSingleCourseInfo(long courseId, String index);

    Result<String> reEditCourse(Long id);
}
